package made.util;

public interface Config 
{
    public static String filepath = "./src/made/data/";
    
    public static enum DEBUG_LEVEL
    {
        SILENT, NORMAL, VERBOSE
    }   
    
    public static enum MODE
    {
        TRAIN, CONFIG
    }
    
    public static enum STATE
    {
        ETL_NGC, ETL_NGF, ETH_NGC, ETH_NGF, UNDEFINED
    }
    
    public static enum ACTION
    {
        TO_NEAREST_PILL, TO_NEAREST_GHOST, FROM_NEAREST_GHOST, UNDEFINED
    }
    
    public static enum PREDICATE_VARIABLES
    {
        ETL, FL, AL, UNDEFINED
    }
    
    public static final DEBUG_LEVEL MPM_DEBUG_LEVEL = DEBUG_LEVEL.SILENT;
//    public static final DEBUG_LEVEL MPM_DEBUG_LEVEL = DEBUG_LEVEL.NORMAL;
//    public static final DEBUG_LEVEL MPM_DEBUG_LEVEL = DEBUG_LEVEL.VERBOSE;
    
//    public static final MODE MPM_MODE = MODE.TRAIN;
    public static final MODE MPM_MODE = MODE.CONFIG;
    
    public static final boolean RECORD_STATS = false;

    // NN config constants
    public static final boolean BATCH_UPDATE = false;
    public static final boolean ANN_USE_MOMENTUM = true;
    public static final int EPOCH_PRINT_CYCLE = 1000;
 
    // GA config constants
    public static final boolean GA_RECORD_STATS = false;
    public static final int POPULATION_SIZE =25;
    public static final int CHROMOSOME_SIZE = 3;
    public static final float MUTATION_PROBABILITY = 0.01f;
    public static final int CROSSOVER_POINTS = 1;
    public static final int MAX_DISTANCE = 153;
    
    // QL config constants
    public static final float EPSILON = 0.5f;
    public static final float EPSILON_DECREASE = 1e-6f; 
    public static final float ALPHA = 0.2f;
    public static final float ALPHA_DECREASE = 1e-6f;
    public static final float GAMMA = 0.7f;
};
